package com.ruoyi.tfjData.service;


import com.ruoyi.tfjData.domain.pad.TfjTaskResqDTO;
import com.ruoyi.tfjData.domain.plat.DataTfj;
import com.ruoyi.tfjData.domain.plat.TfjChartRespDTO;
import com.ruoyi.tfjData.domain.report.TfjReportReqDTO;

import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.Future;

/**
 * 通风机测试结果Service接口
 * 
 * @author ruoyi
 * @date 2023-11-27
 */
public interface IDataTfjService 
{
    /**
     * 查询通风机测试结果
     * 
     * @param tfjId 通风机测试结果主键
     * @return 通风机测试结果
     */
     DataTfj selectDataTfjByTfjId(Long tfjId);

    /**
     * 查询通风机测试结果列表
     * 
     * @param dataTfj 通风机测试结果
     * @return 通风机测试结果集合
     */
     List<DataTfj> selectDataTfjList(DataTfj dataTfj);

    /**
     * 新增通风机测试结果
     * 
     * @param dataTfj 通风机测试结果
     * @return 结果
     */
     int insertDataTfj(DataTfj dataTfj);

    /**
     * 修改通风机测试结果
     * 
     * @param dataTfj 通风机测试结果
     * @return 结果
     */
     int updateDataTfj(DataTfj dataTfj);

    /**
     * 批量删除通风机测试结果
     * 
     * @param tfjIds 需要删除的通风机测试结果主键集合
     * @return 结果
     */
     int deleteDataTfjByTfjIds(Long[] tfjIds);

    /**
     * 删除通风机测试结果信息
     * 
     * @param tfjId 通风机测试结果主键
     * @return 结果
     */
     int deleteDataTfjByTfjId(Long tfjId);

    /**
     *根据任务Id查询通风机测试结果
     * @param dataTaskId
     * @return
     */
     Future<List<DataTfj>> selectAllByDataTaskId(Long dataTaskId);

    /**
     * 根据工况点获取通风机性能曲线图
     */
    TfjChartRespDTO getChartData(Long[] tfjId);

    /**
     * 根据id查询单条通风机任务数据
     */
    TfjTaskResqDTO selectTfjTaskDetail(Long dataTaskId)  throws Exception ;

    /**
     * 批量新增通风机测试结果数据
     */
     int batchDataTfj(List<DataTfj> dataTfjs);

    /**
     * 批量更新通风机测试数据
     */
     int batchUpdateDataTfj(List<DataTfj> dataTfjs);

    /**
     * 通风机数据导入报告
     */
    String dataTfjImportReport(TfjReportReqDTO tfjReportReqDTO);

    /**
     * 通风机风量变更
     */
    Map<String, String> modifyTfjFl(DataTfj modifyTfj);

    /**
     * 通风机饱和蒸气压
     */
    String modifyTfjBhzqy(String wd);

    /**
     * 通风机空气密度计算
     */
    String modifyTfjKqmd(DataTfj modifyTfj);

    /**
     * 通风机轴功率计算
     */
    Map<String, String> modifyTfjZgl(DataTfj modifyTfj);

    /**
     * 通风机风机装置静压计算
     */
    String modityTfjJy(DataTfj modifyTfj);

    /**
     * 通风机风机装置全压计算
     */
    String modifyTfjQy(DataTfj modifyTfj);

    /**
     * 通风机风机装置功率计算
     */
    Map<String, String> modifyTfjGl(DataTfj modifyTfj);

    /**
     * 通风机风机装置效率计算
     */
    Map<String, String> modifyTfjXl(DataTfj modifyTfj);

    /**
     * 通风机风机运行效率和工序能耗
     */
    Map<String, String> modifyTfjXlAndNh(DataTfj modifyTfj);

    /**
     * 通风机风速计算
     */
    String modifyTfjFs(DataTfj modifyTfj);

    /**
     * 通风机组效率
     */
    String modifyTfjzXl(DataTfj modifyTfj);

    //通风机参数变更计算
    DataTfj modifyTfjData(DataTfj dataTfj);

    /**
     * 根据任务id变更通风机状态
     */
    public int updateDataTfjByDataTaskId(Long dataTaskId);

    /**
     * 根据通风机id变更任务状态
     */
    public int updateDataTfjByTfjId(Long tfjId);
}
